# 1.输入a,b,c,d4个整数，计算a+b-c*d的结果：
a, b, c, d = int(input('请输入第一个整数：')), int(input('请输入第二个整数：')), int(input('请输入第三个整数：')), int(input('请输入第四个整数：'))
print('(%d)+(%d)-(%d)x(%d)=%d' % (a, b, c, d, a + b - c * d))
print('==================================================')

# 2.打印1-100内被3整除的所有数的和：
a2, sum2 = 1, 0
while a2 <= 100:
    if not a2 % 3:
        sum2 += a2
    a2 += 1
print('1-100内被3整除的所有数的和:', sum2)  # 或者：
su2 = 0
for b2 in range(3, 101, 3):
    su2 += b2
print('1-100内被3整除的所有数的和:', su2)
print('==================================================')

# 3.使用range()输出1-10内所有奇数：
print('1-10内所有奇数:')
for a3 in range(1, 11, 2):
    print(a3, end=' ')
print()
print('==================================================')

# 4.打印1-100所有偶数的和减去所有奇数的和的值：
sum4, su4 = 0, 0
for a4 in range(1, 101, 1):
    if not a4 % 2:
        sum4 += a4
    else:
        su4 += a4
print('1-100所有偶数的和减去所有奇数的和的值：', sum4 - su4)
print('==================================================')

# 5.求1+2+3+...+100的和：
sum5 = 0
for a5 in range(1, 101, 1):
    sum5 += a5
print('1+2+3+...+100=', sum5)
print('==================================================')

# 6.判断一个数n能同时被3和5整除：
a6 = int(input('请输入一个整数：'))
if not a6 % 3:
    if not a6 % 5:
        print('这个数可以同时被3和5整除。')
    else:
        print('这个数可以被3整除但不可以被5整除。')
elif not a6 % 5:
    print('这个数可以被5整除但不可以被3整除。')
else:
    print('这个数既不可以被3整除也不可以被5整除。')
print('==================================================')

# 7.定义一个整数变量，判断该变量值是否为1-100内的一个数，若是则打印出来：
a7 = int(input('请输入一个整数：'))
if 1 <= a7 <= 100:
    print(a7)
print('==================================================')

# 8.输入三个整数x,y,z，请把这三个数由小到大输出：
lst8 = ['a8', 'b8', 'c8']
x, y, z = int(input('请输入第一个整数：')), int(input('请输入第二个整数：')), int(input('请输入第三个整数：'))
if x >= y:
    if x >= z:
        lst8[2] = x
        if y >= z:
            lst8[1] = y
            lst8[0] = z
        else:
            lst8[1] = z
            lst8[0] = y
    else:
        lst8[2] = z
        lst8[1] = x
        lst8[0] = y
elif y >= z:
    lst8[2] = y
    if z >= x:
        lst8[1] = z
        lst8[0] = x
    else:
        lst8[1] = x
        lst8[0] = z
else:
    lst8[2] = z
    lst8[1] = y
    lst8[0] = x
print(lst8)  # 或者：
x8, y8, z8 = int(input('请输入第一个整数：')), int(input('请输入第二个整数：')), int(input('请输入第三个整数：'))
lit8 = [x8, y8, z8]
lit8.sort()  # 列表中sort用于同一类型进行排序，从小到大排列（包括字母表的位置）
for shuchu in lit8:
    print(shuchu, end=' ')
print()
print('==================================================')

# 9.利用条件运算符的嵌套来完成此题：学习成绩>=90分的同学用A表示，60-89分之间的用B表示，60分以下的用C表示：
a9, b9 = int(input('请输入第一个同学的成绩：')), int(input('请输入第二个同学的成绩：'))
c9, d9 = int(input('请输入第三个同学的成绩：')), int(input('请输入第四个同学的成绩：'))
e9, f9 = int(input('请输入第五个同学的成绩：')), int(input('请输入第六个同学的成绩：'))
g9, h9 = int(input('请输入第七个同学的成绩：')), int(input('请输入第八个同学的成绩：'))
i9, j9 = int(input('请输入第九个同学的成绩：')), int(input('请输入第十个同学的成绩：'))
lst9 = [a9, b9, c9, d9, e9, f9, g9, h9, i9, j9]
if '检查是否输入超出范围的数据':
    for k9 in lst9:
        if k9 < 0 or k9 > 100:
            print('第%d位同学的成绩为%d是不合理的，不予评价，请重新核实！' % (lst9.index(k9) + 1, k9))
for l9 in lst9:
    if 100 >= l9 >= 90:
        print('第%d位同学的成绩是%d,评价为A' % (lst9.index(l9) + 1, l9))
    elif 89 >= l9 >= 60:
        print('第%d位同学的成绩是%d,评价为B' % (lst9.index(l9) + 1, l9))
    elif 60 > l9 >= 0:
        print('第%d位同学的成绩是%d,评价为C' % (lst9.index(l9) + 1, l9))  # 或者：
score = int(input('请输入一个整数作为成绩：'))
if score > 100 or score < 0:
    print('输入有误，请重新输入成绩！')
elif score >= 90:
    print('评价为A')
elif score >= 60:
    print('评价为B')
else:
    print('评价为C')
print('==================================================')

# 10.将一个列表的数据复制到另一个列表中：
lst10 = ['']
lit10 = [None, True, 666, 3.14159, '', 'test', '测试']
print('列表1的内容：', lst10)
print('列表2的内容：', lit10)
lst10 = lit10.copy()
print('将列表2的数据复制到列表1中，复制后列表1的内容：', lst10)
print('复制操作后列表2的内容并未受到影响：', lit10)
print('==================================================')

# 11.输出9*9乘法口诀表：
a11 = 1
while a11 <= 9:
    for b11 in range(1, 10, 1):
        if b11 <= a11:
            print('%dx%d=%d' % (b11, a11, b11 * a11), end='  ')
        else:
            break
    a11 += 1
    print()
print('==================================================')

# 12.输入一行字符，分别统计出其中英文字母，空格，数字和其它字符的个数：
obj12 = input('请输入一行字符：')
str12 = obj12.expandtabs(tabsize=4)
a12, b12, c12, d12 = 0, 0, 0, 0
for x12 in str12:
    if x12.isdigit():
        a12 += 1
    elif 'a' <= x12 <= 'z':
        b12 += 1
    elif x12.isspace():
        c12 += 1
    else:
        d12 += 1
print('这行字符中数字的个数：', a12)
print('这行字符中英文字母的个数：', b12)
print('这行字符中空格的个数：', c12)
print('这行字符中其它字符的个数：', d12)
print('==================================================')

# 13.求s=a+aa+aaa+aaaa+aa...a的值，其中a是个数字，如：2+22+222+2222+22222，几个数相加可由键盘控制：
a13, b13, c13, sum13 = input('请输入正整数a的值：'), int(input('请输入相加的个数：')), 1, 0
d13 = int(a13)  # 用于终结错误输入
if d13 < 0:
    print('数a必须非负!')
elif b13 < 0:
    print('相加个数必须非负!')
else:
    lst13 = [a13]
    while c13 <= b13:
        sum13 += int(''.join(lst13))
        lst13.append(a13)
        c13 += 1
    print('套用此公式的结果为：', sum13)
print('==================================================')

# 14.打印出如下图案（菱形）：
a14 = int(input('请输入一个正奇数：'))
if a14 > 0 and not a14 % 2:
    print('输入的并非正奇数！')
elif a14 <= 0:
    print('输入的并非正数！')
else:
    b14 = 1
    lst14 = ['*']
    while b14 <= a14:
        if b14 % 2:
            print((''.join(lst14)).center(a14))
        lst14.append('*')
        b14 += 1
    b14 -= 2
    lit14 = lst14[2::]
    while b14 >= 1:
        b14 -= 1
        lit14.pop()
        if b14 % 2:
            print((''.join(lit14)).center(a14))
print('==================================================')

# 15.
# 1. 构造5条数据 ，完全模拟bug数据
# 2. 支持模糊查询 ，查询的关键字要通过用户输入
# 3. 当你查找到此数据 ，将这些数据返回来 ，退出
# 4. 没有查询数据，给个提示 ，让它继续查询 。
# bugs_lst = [
#    {'bug_id', 'bug_title', 'bug_level', 'creater', 'create_time', 'bug_type'},
# ]   # 从数据库查询出来的数据
bug_info1 = {'bug_id': 21, 'bug_title': '【地址管理】增添新地址时，省份选择可见山西省的显示缺少‘省’字',
             'bug_level': 3, 'creater': '小王', 'create_time': '2023-03-13 15:28:47', 'bug_type': '代码错误'}
bug_info2 = {'bug_id': 22, 'bug_title': '【地址管理】增添新地址时，弹窗里选择新地址时可以通过特殊操作出现显示和判断的异常',
             'bug_level': 2, 'creater': '小王', 'create_time': '2023-03-13 21:12:04', 'bug_type': '代码错误'}
bug_info3 = {'bug_id': 23, 'bug_title': '【我的优惠券】优惠券统计显示异常，显示结果为死值0',
             'bug_level': 2, 'creater': '小王', 'create_time': '2023-03-14 15:11:13', 'bug_type': '代码错误'}
bug_info4 = {'bug_id': 24, 'bug_title': '【我的优惠券】账户下可用优惠券减免金额显示不全',
             'bug_level': 2, 'creater': '小王', 'create_time': '2023-03-14 18:51:26', 'bug_type': '代码错误'}
bug_info5 = {'bug_id': 25, 'bug_title': '【我的优惠券】在我的优惠券单独页面筛选未使用的优惠券，结果是死值为0',
             'bug_level': 2, 'creater': '小王', 'create_time': '2023-03-14 18:59:26', 'bug_type': '代码错误'}
bugs_all = [bug_info1, bug_info2, bug_info3, bug_info4, bug_info5]
bugs_lst = []
while True:
    sear_opt = input('请输入搜索关键字：')
    for x15 in bugs_all:
        if sear_opt in x15.get('bug_title'):
            bugs_lst.append(x15)
    if len(bugs_lst) != 0:
        print(bugs_lst)
        break
    else:
        print('抱歉！未能查询到相关数据，请重新输入搜索关键词！')
print('==================================================')
